<?php
/**
 * TydenRucne Model for Ohlasky Component
 *
 * @license		GNU/GPL
 */

// No direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport('joomla.application.component.model');

/**
 * mista  Model
 */
class OhlaskysModelTyden_rucne extends JModel
{
    /**
     * Constructor prijima z requestu
     * cislo tydne, rok, den a mesic
     *
     * @access	public
     * @return	void
     */
    //    function __construct()
    //    {
    //        parent::__construct();
    //
    //        $array = JRequest::getVar('cid',  0, '', 'array');
    //        $this->setId((int)$array[0]);
    //    }






//    //vraci asociativni pole('cislo_tydne_int'=>int, 'rok_int'=>int, 'ode_dne'=>str YYYY-MM-DD)
//    //nebo prazdne pole  s klicem 'chyba' pri selhani kdyz tyden daneho cisla jiz byl vytvoren,
//    //nebo kdyz vubec neexistuje (nesmyslene datum)
//    function getTydenRucne() {
//        $hodnoty_nalezeny_bool = false;
//        $cisl_ty_rok_den_arr = array();
//        $chyba = '';
//        $cisl_ty_int = JRequest::getVar('tyden_cislo',  0, '', 'integer');
//        $rok_int = JRequest::getVar('rok',  0, '', 'integer');
//        $ode_dne_dd_int = JRequest::getVar('ode_dne_dd',  0, '', 'integer');
//        $ode_dne_mm_int = JRequest::getVar('ode_dne_mm',  0, '', 'integer');
//        $ode_dne_str = '';
//        if (!empty($cisl_ty_int) && (!empty($rok_int))) {
//            if (($cisl_ty_int < 1) || ($cisl_ty_int >54)) {
//                //zjistime, zda tyden daneho cisla a roku vubec existuje
//                $rok_str = strval($rok_int);
//                $dateTime_obj = date_create($rok_str.'-01-01');
//                if (is_object($dateTime_obj)) {
//                    $pridat_dnu = ($cisl_ty_int * 7) - 7;
//                    $dateTime_obj->modify("+".$pridat_dnu." day");
//                    $hodnoty_nalezeny_bool = true;
//                } else {
//                    $chyba = 'Zadali jste chybný rok!';
//                }
//            } else {
//                $chyba = 'Zadané číslo týdne je mimo povolený rozsah!';
//            }
//        }
//        if (($hodnoty_nalezeny_bool == false) && (empty($chyba))) {
//            //zjistime, zda bylo zadano datum pocatku tydne
//            //a pokusime se vytvorit obj tridy DateTime
//            if (!empty($ode_dne_dd_int) && (!empty($ode_dne_mm_int)) && (!empty($rok_int))) {
//                $den_str = strval($ode_dne_dd_int);
//                $mesic_str = strval($ode_dne_mm_int);
//                $rok_str = strval($rok_int);
//                $datum_str = $rok_str.'-'.$mesic_str.'-'.$den_str;
//                $dateTime_obj = date_create($datum_str);
//                if (!(is_object($dateTime_obj))) {
//                    //zkusime to s 28.dnem zadaneho mesice
//                    $datum_str = $rok_str.'-'.$mesic_str.'-28';
//                    $dateTime_obj = date_create($datum_str);
//                }
//                if (is_object($dateTime_obj)) {
//                    $hodnoty_nalezeny_bool = true;
//                } else {
//                    $chyba = 'Ze zadaných hodnot nelze vytvořit povolené datum!';
//                }
//            }
//        }
//        if (($hodnoty_nalezeny_bool == false) && (empty($chyba))) {
//            $chyba = 'Musíte zadat buď číslo týdne a rok nebo den, měsíc a rok!';
//        }
//
//
//        if (($hodnoty_nalezeny_bool == true) && (empty($chyba))) {
//            $uspesna_zmena_bool = $this->zmenDatumNaPondeli($dateTime_obj);
//            $stejnyNeni_bool = $this->neexistujeStejnyTyden($dateTime_obj);
//            if (!$stejnyNeni_bool) {
//                $chyba = 'Stejný týden již je uložen v databázi. Upravte jej nebo změňte datum.';
//            }
//        }
//        if  (empty($chyba)) {
//            $cisl_ty_rok_den_arr['cislo_tydne_int'] = intval($dateTime_obj->format("W"));
//            $cisl_ty_rok_den_arr['rok_int'] = intval($dateTime_obj->format("Y"));
//            $cisl_ty_rok_den_arr['ode_dne'] = $dateTime_obj->format('Y-m-d');
//            $cisl_ty_rok_den_arr['chyba'] = '';
//        } else {
//            $cisl_ty_rok_den_arr['chyba'] = $chyba;
//        }
//        return $cisl_ty_rok_den_arr;
//    }
//
//
//
//    //ocekava objekt tridy DateTime,
//    //zmeni predane datum na nejblizsi
//    //nadchazejici pondeli
//    //pri uspechu vraci true, jinak false
//    function zmenDatumNaPondeli(&$dateTime_obj) {
//        $uspech_bool = false;
//        if (is_object($dateTime_obj)) {
//            $cislo_dne_tydne_str = $dateTime_obj->format('N');
//            if (!empty($cislo_dne_tydne_str)) {
//                switch ($cislo_dne_tydne_str) {
//                    case "1":
//                        //echo "den je pondělí, ponechame ho";
//                        break;
//                    case "2":
//                        $dateTime_obj->modify("+6 day");
//                        break;
//                    case "3":
//                        $dateTime_obj->modify("+5 day");
//                        break;
//                    case "4":
//                        $dateTime_obj->modify("+4 day");
//                        break;
//                    case "5":
//                        $dateTime_obj->modify("+3 day");
//                        break;
//                    case "6":
//                        $dateTime_obj->modify("+2 day");
//                        break;
//                    case "7":
//                        $dateTime_obj->modify("+1 day");
//                        break;
//                }
//            }
//        }
//        if ($uspech_bool) {
//            return true;
//        } else {
//            return false;
//        }
//    }
//
//
//
//    //ocekava objekt tridy DateTime,
//    //pokud tyden zacinajici stejnym datumem
//    //jiz je v databazi, posunuje datum az
//    //nalezne volny tyden
//    //vraci true/false
//    function neexistujeStejnyTyden(&$dateTime_obj) {
//        $stejny_neexistuje_bool = false;
//        if (is_object($dateTime_obj)) {
//            //zkontrolujeme zda je datum pondeli, pripadne upravime
//            $uspesna_zmena_bool = $this->zmenDatumNaPondeli($dateTime_obj);
//            if ($uspesna_zmena_bool) {
//                //zjistime zda tyden zacinajici stejnym pondelkem
//                //jiz neni v databazi
//                $cisl_ty_int = intval($dateTime_obj->format("W"));
//                $rok_int = intval($dateTime_obj->format("Y"));
//                $query5 = ' SELECT * FROM #__tydny '.
//                    '  WHERE #__tydny.tyden_cislo = '.$cisl_ty_int. '
//                        AND #__tydny.rok = '.$rok_int;
//                $this->_db->setQuery( $query5 );
//                $tyden_obj = $this->_db->loadObject();
//                if (!(is_object($tyden_obj))) {
//                    $stejny_neexistuje_bool = true;
//                }
//            }
//        }
//        return $stejny_neexistuje_bool;
//    }

}

